package xpn.platform.modules.workflow.definition.state;

import lombok.Getter;
import lombok.Setter;

import org.hibernate.validator.constraints.Length;
import xpn.platform.common.persistence.AbstractBaseEntity;

import javax.persistence.*;

/**
 * 状态：表示一个流程实例下的状态抽象。运行时，执行者必须处于一个状态下，一个状态下包含一个或多个可以执行的操作。
 *
 * @author bobatkm Sep 4, 2017
 */
@Entity
@Table(name = "wf_state", uniqueConstraints = { @UniqueConstraint(columnNames = { "name", "process_id" }) })
@Getter
@Setter
public class State extends AbstractBaseEntity {
	private static final long serialVersionUID = 740286952083985010L;

	@ManyToOne
	@JoinColumn(nullable = false)
	private xpn.platform.modules.workflow.definition.process.Process process; // 所属流程

	@Length(min = 2, max = 40)
	@Column(nullable = false)
	private String name; // 名称

	private Float sortNo; // 排序号

	@Length(max = 60)
	@Column(unique = false, nullable = true)
	private String description; // 说明

	private String timeLimit;//时限 秒 也可以配置规则表达式
}
